{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e0bc02b1-b4b8-428d-b7e0-caa1568edcc0",
   "metadata": {},
   "outputs": [],
   "source": [
    "%env LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1\n",
    "%env LLM_API_KEY=替换为自己的key"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "af375836-b870-458b-87d1-4e00565977eb",
   "metadata": {
    "editable": true,
    "execution": {
     "iopub.execute_input": "2024-08-07T13:30:40.348955Z",
     "iopub.status.busy": "2024-08-07T13:30:40.348183Z",
     "iopub.status.idle": "2024-08-07T13:30:57.884853Z",
     "shell.execute_reply": "2024-08-07T13:30:57.882142Z",
     "shell.execute_reply.started": "2024-08-07T13:30:40.348888Z"
    },
    "id": "af375836-b870-458b-87d1-4e00565977eb",
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
      "To disable this warning, you can either:\n",
      "\t- Avoid using `tokenizers` before the fork if possible\n",
      "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n"
     ]
    }
   ],
   "source": [
    "%%capture --no-stderr\n",
    "!pip install -U langchain langchain_community langchain_openai pypdf sentence_transformers chromadb shutil"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e-Oy-FOJgB_A",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:25.653129Z",
     "iopub.status.busy": "2024-08-08T13:45:25.652375Z",
     "iopub.status.idle": "2024-08-08T13:45:29.873915Z",
     "shell.execute_reply": "2024-08-08T13:45:29.873432Z",
     "shell.execute_reply.started": "2024-08-08T13:45:25.653059Z"
    },
    "id": "e-Oy-FOJgB_A",
    "outputId": "a5d1bb66-4e4d-4dea-8af2-3210b69e626c"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/lib/python3.10/site-packages/sentence_transformers/cross_encoder/CrossEncoder.py:11: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console)\n",
      "  from tqdm.autonotebook import tqdm, trange\n",
      "2024-08-08 21:45:27.505093: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.\n",
      "2024-08-08 21:45:27.535958: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
      "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
      "2024-08-08 21:45:28.138629: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "langchain                     0.2.10\n",
      "langchain_core                0.2.28\n",
      "langchain_community           0.2.9\n",
      "pypdf                         4.3.1\n",
      "sentence_transformers         3.0.1\n",
      "chromadb                      0.5.4\n"
     ]
    }
   ],
   "source": [
    "import langchain, langchain_community, pypdf, sentence_transformers, chromadb, langchain_core\n",
    "\n",
    "for module in (langchain, langchain_core, langchain_community, pypdf, sentence_transformers, chromadb):\n",
    "    print(f\"{module.__name__:<30}{module.__version__}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7Dg7IoUDb66a",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:29.874923Z",
     "iopub.status.busy": "2024-08-08T13:45:29.874614Z",
     "iopub.status.idle": "2024-08-08T13:45:30.656467Z",
     "shell.execute_reply": "2024-08-08T13:45:30.653552Z",
     "shell.execute_reply.started": "2024-08-08T13:45:29.874908Z"
    },
    "id": "7Dg7IoUDb66a",
    "outputId": "643e05c7-3772-4b2f-aa04-d112beccb76f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "langchain-openai                                  0.1.20\n"
     ]
    }
   ],
   "source": [
    "!pip list|grep langchain-openai"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1e2c72b8-ee12-4130-af88-699998aa230c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:30.660767Z",
     "iopub.status.busy": "2024-08-08T13:45:30.659969Z",
     "iopub.status.idle": "2024-08-08T13:45:30.778572Z",
     "shell.execute_reply": "2024-08-08T13:45:30.778099Z",
     "shell.execute_reply.started": "2024-08-08T13:45:30.660690Z"
    },
    "id": "1e2c72b8-ee12-4130-af88-699998aa230c"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd\n",
    "\n",
    "from langchain_community.vectorstores import Chroma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "841d2b02-ad06-40d2-b11f-c7adccec6ca2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:30.785550Z",
     "iopub.status.busy": "2024-08-08T13:45:30.785427Z",
     "iopub.status.idle": "2024-08-08T13:45:30.788924Z",
     "shell.execute_reply": "2024-08-08T13:45:30.788504Z",
     "shell.execute_reply.started": "2024-08-08T13:45:30.785539Z"
    },
    "id": "841d2b02-ad06-40d2-b11f-c7adccec6ca2"
   },
   "outputs": [],
   "source": [
    "expr_version = 'retrieval_v1_bge_ft'\n",
    "\n",
    "preprocess_output_dir = os.path.join(os.path.pardir, 'outputs', 'v1_20240713')\n",
    "expr_dir = os.path.join(os.path.pardir, 'experiments', expr_version)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf7e81e3-4c82-4842-aef5-7592caaf1d39",
   "metadata": {
    "id": "cf7e81e3-4c82-4842-aef5-7592caaf1d39"
   },
   "source": [
    "# 文档处理"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0PNdWJAALMni",
   "metadata": {
    "id": "0PNdWJAALMni"
   },
   "source": [
    "## 文档加载"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d25d4efc-01f9-4f74-b964-017249ed4f5f",
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain_community.document_loaders import PyPDFLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e6920e29-bc7d-4635-be06-d151eaf0e100",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:30.797643Z",
     "iopub.status.busy": "2024-08-08T13:45:30.797521Z",
     "iopub.status.idle": "2024-08-08T13:45:32.178630Z",
     "shell.execute_reply": "2024-08-08T13:45:32.178163Z",
     "shell.execute_reply.started": "2024-08-08T13:45:30.797631Z"
    },
    "id": "e6920e29-bc7d-4635-be06-d151eaf0e100"
   },
   "outputs": [],
   "source": [
    "loader = PyPDFLoader(os.path.join(os.path.pardir, 'data', '2024全球经济金融展望报告.pdf'))\n",
    "documents = loader.load()\n",
    "\n",
    "qa_df = pd.read_excel(os.path.join(preprocess_output_dir, 'question_answer.xlsx'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "841ec659-4ad7-4e1f-b1ea-3477bf97fde3",
   "metadata": {
    "id": "841ec659-4ad7-4e1f-b1ea-3477bf97fde3"
   },
   "source": [
    "## 文档切分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "74fe856a-7c19-4c3c-bb30-7abfa6298f74",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:32.179328Z",
     "iopub.status.busy": "2024-08-08T13:45:32.179088Z",
     "iopub.status.idle": "2024-08-08T13:45:32.185786Z",
     "shell.execute_reply": "2024-08-08T13:45:32.185342Z",
     "shell.execute_reply.started": "2024-08-08T13:45:32.179314Z"
    },
    "id": "74fe856a-7c19-4c3c-bb30-7abfa6298f74"
   },
   "outputs": [],
   "source": [
    "from uuid import uuid4\n",
    "import os\n",
    "import pickle\n",
    "\n",
    "from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
    "\n",
    "def split_docs(documents, filepath, chunk_size=400, chunk_overlap=40, seperators=['\\n\\n\\n', '\\n\\n'], force_split=False):\n",
    "    if os.path.exists(filepath) and not force_split:\n",
    "        print('found cache, restoring...')\n",
    "        return pickle.load(open(filepath, 'rb'))\n",
    "\n",
    "    splitter = RecursiveCharacterTextSplitter(\n",
    "        chunk_size=chunk_size,\n",
    "        chunk_overlap=chunk_overlap,\n",
    "        separators=seperators\n",
    "    )\n",
    "    split_docs = splitter.split_documents(documents)\n",
    "    for chunk in split_docs:\n",
    "        chunk.metadata['uuid'] = str(uuid4())\n",
    "\n",
    "    pickle.dump(split_docs, open(filepath, 'wb'))\n",
    "\n",
    "    return split_docs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "fh0N6CwXe-Ho",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:32.186339Z",
     "iopub.status.busy": "2024-08-08T13:45:32.186213Z",
     "iopub.status.idle": "2024-08-08T13:45:32.190427Z",
     "shell.execute_reply": "2024-08-08T13:45:32.190039Z",
     "shell.execute_reply.started": "2024-08-08T13:45:32.186327Z"
    },
    "id": "fh0N6CwXe-Ho",
    "outputId": "2b28473b-f3b0-4219-9614-4e09d6a9d50d"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "found cache, restoring...\n"
     ]
    }
   ],
   "source": [
    "splitted_docs = split_docs(documents, os.path.join(preprocess_output_dir, 'split_docs.pkl'), chunk_size=500, chunk_overlap=50)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "220dbc3a-fceb-4e49-a3f1-01e16660b2a6",
   "metadata": {
    "id": "220dbc3a-fceb-4e49-a3f1-01e16660b2a6"
   },
   "source": [
    "## 向量化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "f7124830-dba9-4609-aedb-f81f4e388fa4",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:36.496006Z",
     "iopub.status.busy": "2024-08-08T13:45:36.495215Z",
     "iopub.status.idle": "2024-08-08T13:45:36.541691Z",
     "shell.execute_reply": "2024-08-08T13:45:36.539814Z",
     "shell.execute_reply.started": "2024-08-08T13:45:36.495939Z"
    },
    "id": "f7124830-dba9-4609-aedb-f81f4e388fa4",
    "outputId": "9c9ccb61-de0c-4350-d791-2dff7487a403"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "device: cuda\n"
     ]
    }
   ],
   "source": [
    "from langchain.embeddings import HuggingFaceBgeEmbeddings\n",
    "from langchain_community.vectorstores import Chroma\n",
    "import torch\n",
    "\n",
    "device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
    "print(f'device: {device}')\n",
    "\n",
    "def get_embeddings(model_path):\n",
    "    embeddings = HuggingFaceBgeEmbeddings(\n",
    "        model_name=model_path,\n",
    "        model_kwargs={'device': device},\n",
    "        encode_kwargs={'normalize_embeddings': True},\n",
    "        # show_progress=True\n",
    "        query_instruction='为这个句子生成表示以用于检索相关文章：'\n",
    "    )\n",
    "    return embeddings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "41821b04-afc4-4a9b-98d2-f95f7bf83f74",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 176,
     "referenced_widgets": [
      "98a8f1feca2749e298df07d56cc49d28",
      "35bc5fe9ac44433fb69434a4aabab624",
      "0a3d5ba36d8f4981b8cc5515e09566f7",
      "5a2c4d204b1e4caf8935c0d53d24c456",
      "6962a57036534834b06682d516d2d4d7",
      "f941d12ce31f4ccbaf3fb13a0c90ef36",
      "592b0bf8a67842099563d0905e07227a",
      "684e3ba1847a4f498eda23f9011059cf",
      "973eadf6db09408e886a9a87386afee4",
      "0a9044ea411447c7a22c54dbc8720d2d",
      "efdc52f31b094771b4333dbdbb9a4b1c"
     ]
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:45:37.217263Z",
     "iopub.status.busy": "2024-08-08T13:45:37.216469Z",
     "iopub.status.idle": "2024-08-08T13:46:08.751577Z",
     "shell.execute_reply": "2024-08-08T13:46:08.751077Z",
     "shell.execute_reply.started": "2024-08-08T13:45:37.217193Z"
    },
    "id": "41821b04-afc4-4a9b-98d2-f95f7bf83f74",
    "outputId": "bcdae5c8-0dae-48b5-8e97-5faaf5eebef4"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4e0fd5828cc3446c8b696343057dc3e7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/2 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from tqdm.auto import tqdm\n",
    "import shutil\n",
    "\n",
    "vector_db_dict = {}\n",
    "\n",
    "emb_names = [\n",
    "    'bge_large',\n",
    "    'bge_large_finetune'\n",
    "]\n",
    "model_paths = [\n",
    "    # 如果已经下载到本地，可以替换为本地路径\n",
    "    'BAAI/bge-large-zh-v1.5',\n",
    "    'stevenluo/bge-large-zh-v1.5-ft-v4'\n",
    "]\n",
    "\n",
    "for name, model_path in tqdm(zip(emb_names, model_paths), total=len(emb_names)):\n",
    "    # 确保结果可复现性\n",
    "    persist_directory = os.path.join(expr_dir, 'chroma', name)\n",
    "    shutil.rmtree(persist_directory, ignore_errors=True)\n",
    "    \n",
    "    embeddings = get_embeddings(model_path)\n",
    "    vector_db_dict[name] = Chroma.from_documents(\n",
    "        splitted_docs,\n",
    "        embedding=embeddings,\n",
    "        persist_directory=persist_directory\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "CKF0J7duLRMw",
   "metadata": {
    "id": "CKF0J7duLRMw"
   },
   "source": [
    "# 检索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "f9ba0818-d608-4e87-aa9e-aced270a113c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:46:41.476020Z",
     "iopub.status.busy": "2024-08-08T13:46:41.475850Z",
     "iopub.status.idle": "2024-08-08T13:46:41.478694Z",
     "shell.execute_reply": "2024-08-08T13:46:41.478287Z",
     "shell.execute_reply.started": "2024-08-08T13:46:41.476006Z"
    },
    "id": "f9ba0818-d608-4e87-aa9e-aced270a113c"
   },
   "outputs": [],
   "source": [
    "def retrieve(vector_db, query: str, k=5):\n",
    "    return vector_db.similarity_search(query, k=k)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "566c6f3c-5777-4aa9-bc60-a3ee23050506",
   "metadata": {
    "id": "566c6f3c-5777-4aa9-bc60-a3ee23050506"
   },
   "source": [
    "## 计算检索准确率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b03e3382-39e9-4932-a265-69b811041629",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:46:42.008906Z",
     "iopub.status.busy": "2024-08-08T13:46:42.008735Z",
     "iopub.status.idle": "2024-08-08T13:46:42.012097Z",
     "shell.execute_reply": "2024-08-08T13:46:42.011653Z",
     "shell.execute_reply.started": "2024-08-08T13:46:42.008893Z"
    },
    "id": "b03e3382-39e9-4932-a265-69b811041629"
   },
   "outputs": [],
   "source": [
    "test_df = qa_df[(qa_df['dataset'] == 'test') & (qa_df['qa_type'] == 'detailed')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "32c3ad14-b217-44aa-bdb9-909b9d559668",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:46:42.438902Z",
     "iopub.status.busy": "2024-08-08T13:46:42.438692Z",
     "iopub.status.idle": "2024-08-08T13:46:42.442443Z",
     "shell.execute_reply": "2024-08-08T13:46:42.442062Z",
     "shell.execute_reply.started": "2024-08-08T13:46:42.438889Z"
    },
    "id": "32c3ad14-b217-44aa-bdb9-909b9d559668"
   },
   "outputs": [],
   "source": [
    "def get_hit_stat_df(vector_db, top_k_arr=list(range(1, 9))):\n",
    "    hit_stat_data = []\n",
    "\n",
    "    for k in tqdm(top_k_arr):\n",
    "        retriever = vector_db.as_retriever(search_kwargs={'k': k})\n",
    "        for idx, row in test_df.iterrows():\n",
    "            question = row['question']\n",
    "            true_uuid = row['uuid']\n",
    "            # chunks = retrieve(vector_db, question, k=k)\n",
    "            chunks = retriever.get_relevant_documents(question)[:k]\n",
    "            retrieved_uuids = [doc.metadata['uuid'] for doc in chunks]\n",
    "\n",
    "            hit_stat_data.append({\n",
    "                'question': question,\n",
    "                'top_k': k,\n",
    "                'hit': int(true_uuid in retrieved_uuids),\n",
    "                'retrieved_chunks': len(chunks)\n",
    "            })\n",
    "    hit_stat_df = pd.DataFrame(hit_stat_data)\n",
    "    return hit_stat_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "dcaa74a3-3873-4c9e-ae8a-47f4e940b724",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 81,
     "referenced_widgets": [
      "52983dfff3cf418ebf0c9aeca5695a5b",
      "c769aa9e95ef40f49899431caa2f3637",
      "716931bf754f41e181a549c258571d7e",
      "d99839ac7c904fb88e70eb75f30f7827",
      "002d4cd8a5c54f4cb194fcd718df34e1",
      "6e8fd1950c834d5990ead72268ee330f",
      "21423bce6db7428dae9988e945f4cf59",
      "1589fa7eb1b8420b99987c59c1017366",
      "aaa60aaa5b8f4cbcafd040896e593548",
      "477cd703b3a645f2969e1f3504fb7dcf",
      "bf0a870702c34440a3966553e0a01c69",
      "17707a740de84b6288d6cab91746e8e7",
      "26beb520364d413aae80819c5febe60d",
      "a89c6f884f614deb874905fb1e8d1908",
      "367d4e99f59d46b4b0c5505b1e830871",
      "93f7260d1fc44a6f9598715f4cd9a875",
      "3a96b0a74b9948edbd56f7c18dae9f62",
      "b9fb9f85be20446da81a08f0dae3cea8",
      "d0a566e962324d94aa7bd9b7fe5cb3db",
      "962dc6e0ad004253a943ead49015bae0",
      "c906f6c5170d47448f95b7a6ba018473",
      "5feb5b97fa964fa29b52b9bc06bd4795"
     ]
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:46:42.843819Z",
     "iopub.status.busy": "2024-08-08T13:46:42.843648Z",
     "iopub.status.idle": "2024-08-08T13:47:25.914558Z",
     "shell.execute_reply": "2024-08-08T13:47:25.914168Z",
     "shell.execute_reply.started": "2024-08-08T13:46:42.843806Z"
    },
    "id": "dcaa74a3-3873-4c9e-ae8a-47f4e940b724",
    "outputId": "ee37bf34-599f-4f0e-93f3-1b233852b06a"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9944b029e2954344b7941629c34d0120",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/8 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/lib/python3.10/site-packages/langchain_core/_api/deprecation.py:139: LangChainDeprecationWarning: The method `BaseRetriever.get_relevant_documents` was deprecated in langchain-core 0.1.46 and will be removed in 0.3.0. Use invoke instead.\n",
      "  warn_deprecated(\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "79cf59d4f7a0439b879521eaad40f982",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/8 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hit_stat_dfs = []\n",
    "for key in vector_db_dict:\n",
    "    vector_db = vector_db_dict[key]\n",
    "    hit_stat_df = get_hit_stat_df(vector_db)\n",
    "    hit_stat_df['emb_model'] = key\n",
    "    hit_stat_dfs.append(hit_stat_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "d426d48a-57f0-43aa-9195-ec43e2b29f08",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:47:25.915378Z",
     "iopub.status.busy": "2024-08-08T13:47:25.915243Z",
     "iopub.status.idle": "2024-08-08T13:47:25.918211Z",
     "shell.execute_reply": "2024-08-08T13:47:25.917771Z",
     "shell.execute_reply.started": "2024-08-08T13:47:25.915366Z"
    },
    "id": "d426d48a-57f0-43aa-9195-ec43e2b29f08"
   },
   "outputs": [],
   "source": [
    "all_hit_stat_df = pd.concat(hit_stat_dfs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "Q17wcGZf8CFn",
   "metadata": {
    "id": "Q17wcGZf8CFn"
   },
   "source": [
    "这个结果，与baseline中的结果，是不一样的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "H8_VfsXR31d2",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 551
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:47:25.918769Z",
     "iopub.status.busy": "2024-08-08T13:47:25.918630Z",
     "iopub.status.idle": "2024-08-08T13:47:25.937391Z",
     "shell.execute_reply": "2024-08-08T13:47:25.936896Z",
     "shell.execute_reply.started": "2024-08-08T13:47:25.918742Z"
    },
    "id": "H8_VfsXR31d2",
    "outputId": "31a35f61-4069-42d9-b1f6-e1154d6b04fd"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>emb_model</th>\n",
       "      <th>top_k</th>\n",
       "      <th>hit_rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>bge_large</td>\n",
       "      <td>1</td>\n",
       "      <td>0.462366</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>bge_large</td>\n",
       "      <td>2</td>\n",
       "      <td>0.591398</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>bge_large</td>\n",
       "      <td>3</td>\n",
       "      <td>0.688172</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>bge_large</td>\n",
       "      <td>4</td>\n",
       "      <td>0.774194</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>bge_large</td>\n",
       "      <td>5</td>\n",
       "      <td>0.806452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>bge_large</td>\n",
       "      <td>6</td>\n",
       "      <td>0.817204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>bge_large</td>\n",
       "      <td>7</td>\n",
       "      <td>0.838710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>bge_large</td>\n",
       "      <td>8</td>\n",
       "      <td>0.849462</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>bge_large_finetune</td>\n",
       "      <td>1</td>\n",
       "      <td>0.548387</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>bge_large_finetune</td>\n",
       "      <td>2</td>\n",
       "      <td>0.698925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>bge_large_finetune</td>\n",
       "      <td>3</td>\n",
       "      <td>0.806452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>bge_large_finetune</td>\n",
       "      <td>4</td>\n",
       "      <td>0.870968</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>bge_large_finetune</td>\n",
       "      <td>5</td>\n",
       "      <td>0.892473</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>bge_large_finetune</td>\n",
       "      <td>6</td>\n",
       "      <td>0.903226</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>bge_large_finetune</td>\n",
       "      <td>7</td>\n",
       "      <td>0.913978</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>bge_large_finetune</td>\n",
       "      <td>8</td>\n",
       "      <td>0.935484</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             emb_model  top_k  hit_rate\n",
       "0            bge_large      1  0.462366\n",
       "1            bge_large      2  0.591398\n",
       "2            bge_large      3  0.688172\n",
       "3            bge_large      4  0.774194\n",
       "4            bge_large      5  0.806452\n",
       "5            bge_large      6  0.817204\n",
       "6            bge_large      7  0.838710\n",
       "7            bge_large      8  0.849462\n",
       "8   bge_large_finetune      1  0.548387\n",
       "9   bge_large_finetune      2  0.698925\n",
       "10  bge_large_finetune      3  0.806452\n",
       "11  bge_large_finetune      4  0.870968\n",
       "12  bge_large_finetune      5  0.892473\n",
       "13  bge_large_finetune      6  0.903226\n",
       "14  bge_large_finetune      7  0.913978\n",
       "15  bge_large_finetune      8  0.935484"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_hit_stat_df.groupby(['emb_model', 'top_k'])['hit'].mean().reset_index().rename(columns={'hit': 'hit_rate'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "b0b086d1-6cec-4743-8df6-2ab3b1593689",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 468
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:47:33.639608Z",
     "iopub.status.busy": "2024-08-08T13:47:33.639408Z",
     "iopub.status.idle": "2024-08-08T13:47:34.012098Z",
     "shell.execute_reply": "2024-08-08T13:47:34.011744Z",
     "shell.execute_reply.started": "2024-08-08T13:47:33.639596Z"
    },
    "id": "b0b086d1-6cec-4743-8df6-2ab3b1593689",
    "outputId": "c87b21f7-20b2-4e99-8c87-234b51228a6e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='top_k', ylabel='hit'>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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Uri4uNzyETCmevXVVxUYGKjly5fb24KDgy2sqHL4+vo6bL/yyit66KGH1LVrV4sqqhxffPGFfv/736tPnz6SfjqC9c477ygjI8PiykrGaSlUmhtPZK9Tp47FlVSewsJCvfvuu7p48eItHxFimpEjR6pPnz6KioqyupRKc/jwYTVo0EBNmjTRwIEDlZ2dbXVJFW79+vWKiIjQk08+KT8/Pz366KNasmSJ1WVVqoKCAv33f/+3hgwZUunPKqxsHTt2VFpamr755htJ0v79+7V169Yq+4c7R25QKYqKijRmzBh16tSpWtxN+sCBA4qMjNSVK1dUu3Ztffjhh3r44YetLqvCvfvuu9qzZ4927dpldSmVpkOHDlqxYoVatGihnJwcTZ48WZ07d9bBgwfl6elpdXkV5ttvv9XChQuVkJCgCRMmaNeuXRo9erRcXV0VExNjdXmVYt26dTp79qwGDx5sdSkVbty4ccrPz1dISIicnZ1VWFio6dOna+DAgVaXViLCDSrFyJEjdfDgQW3dutXqUipFixYttG/fPp07d07vv/++YmJitGXLFqMDzokTJxQfH69PPvlE7u7uVpdTaX7+l2ubNm3UoUMHNW7cWO+9956GDh1qYWUVq6ioSBEREZoxY4Yk6dFHH9XBgwe1aNGiahNuli1bpt69e5fqKdX3u/fee0+rV6/WmjVr1KpVK+3bt09jxoxRgwYNquT3m3CDChcXF6e///3v+sc//qEHH3zQ6nIqhaurq5o2bSpJCg8P165duzR37ly9+eabFldWcTIzM5WXl6ewsDB7W2Fhof7xj39o/vz5unr1qpydnS2ssHL4+PioefPmOnLkiNWlVKiAgICbwnrLli31wQcfWFRR5fruu++Umpqq//3f/7W6lErxwgsvaNy4cXr66aclSa1bt9Z3332nlJQUwg2ql+LiYo0aNUoffvih0tPTq8Viw1spKirS1atXrS6jQvXo0UMHDhxwaIuNjVVISIheeumlahFspJ8WVB89elSDBg2yupQK1alTp5tu7fDNN9+ocePGFlVUuZYvXy4/Pz/7AlvTXbp0yeEh1pLk7OysoqIiiyq6PcJNJbhw4YLDX3HHjh3Tvn37VKdOHTVq1MjCyirWyJEjtWbNGv31r3+Vp6encnNzJUne3t7y8PCwuLqKM378ePXu3VuNGjXS+fPntWbNGqWnp+vjjz+2urQK5enpedN6qlq1aqlu3bpGr7MaO3as+vbtq8aNG+vkyZNKTk6Ws7Oz/vjHP1pdWoV67rnn1LFjR82YMUNPPfWUMjIytHjxYi1evNjq0ipcUVGRli9frpiYmGpx2b/001Wg06dPV6NGjdSqVSvt3btXs2bN0pAhQ6wurWTFqHCfffZZsaSbXjExMVaXVqFK2mdJxcuXL7e6tAo1ZMiQ4saNGxe7uroW+/r6Fvfo0aN48+bNVpdlia5duxbHx8dbXUaFGjBgQHFAQECxq6trccOGDYsHDBhQfOTIEavLqhR/+9vfih955JFiNze34pCQkOLFixdbXVKl+Pjjj4slFWdlZVldSqXJz88vjo+PL27UqFGxu7t7cZMmTYonTpxYfPXqVatLKxFPBQcAAEbhPjcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwCqtaCgIM2ZM8fqMgCUI8INgCqjW7duGjNmjNVlALjPEW4AAIBRCDcAqoTBgwdry5Ytmjt3rmw2m2w2m44fP64tW7aoffv2cnNzU0BAgMaNG6fr16/bx3Xr1k1xcXGKi4uTt7e36tWrp8TERN3tY/OWLl0qHx8fpaWlldeuAahkhBsAVcLcuXMVGRmp4cOHKycnRzk5OapRo4Yef/xxtWvXTvv379fChQu1bNkyTZs2zWHsypUr5eLiooyMDM2dO1ezZs3S0qVLy1zDa6+9pnHjxmnz5s3q0aNHee0agErmYnUBACBJ3t7ecnV1Vc2aNVW/fn1J0sSJExUYGKj58+fLZrMpJCREJ0+e1EsvvaSkpCQ5Of3091lgYKBmz54tm82mFi1a6MCBA5o9e7aGDx9e6vlfeuklvf3229qyZYtatWpVIfsIoHJw5AZAlXXo0CFFRkbKZrPZ2zp16qQLFy7oX//6l73tsccec+gTGRmpw4cPq7CwsFTzzJw5U0uWLNHWrVsJNoABCDcAqr3OnTursLBQ7733ntWlACgHhBsAVYarq6vD0ZaWLVtq+/btDouDt23bJk9PTz344IP2tp07dzp8zo4dO9SsWTM5OzuXat727dvro48+0owZM/T666/f414AsBrhBkCVERQUpJ07d+r48eM6c+aMnn32WZ04cUKjRo3S119/rb/+9a9KTk5WQkKCfb2NJGVnZyshIUFZWVl65513NG/ePMXHx5dp7o4dO2rjxo2aPHkyN/UD7nMsKAZQZYwdO1YxMTF6+OGHdfnyZR07dkwbN27UCy+8oLZt26pOnToaOnSoXn75ZYdx0dHRunz5stq3by9nZ2fFx8drxIgRZZ7/V7/6lTZs2KDHH39czs7OGjVqVHntGoBKZCu+25tBAEAV0K1bN4WGhnK0BYAdp6UAAIBRCDcAjPX555+rdu3at3wBMBOnpQAY6/Lly/r+++9v+X7Tpk0rsRoAlYVwAwAAjMJpKQAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKP8fFRYJ2GG5g6IAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "\n",
    "sns.barplot(x='top_k', y='hit', hue='emb_model', data=all_hit_stat_df, errorbar=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7925564a-7d30-4914-baaf-4a00abb7686d",
   "metadata": {
    "id": "7925564a-7d30-4914-baaf-4a00abb7686d"
   },
   "source": [
    "# 问答全流程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "YyfUaYD_Vw5D",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:47:48.705416Z",
     "iopub.status.busy": "2024-08-08T13:47:48.705204Z",
     "iopub.status.idle": "2024-08-08T13:47:48.708220Z",
     "shell.execute_reply": "2024-08-08T13:47:48.707779Z",
     "shell.execute_reply.started": "2024-08-08T13:47:48.705403Z"
    },
    "id": "YyfUaYD_Vw5D"
   },
   "outputs": [],
   "source": [
    "from langchain.llms import Ollama\n",
    "\n",
    "llm = Ollama(\n",
    "    model='qwen2:7b-instruct',\n",
    "    base_url='http://localhost:11434'\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a04d1QzhVlio",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 53
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:47:55.013320Z",
     "iopub.status.busy": "2024-08-08T13:47:55.013135Z",
     "iopub.status.idle": "2024-08-08T13:48:04.688098Z",
     "shell.execute_reply": "2024-08-08T13:48:04.687734Z",
     "shell.execute_reply.started": "2024-08-08T13:47:55.013306Z"
    },
    "id": "a04d1QzhVlio",
    "outputId": "8ce28b5e-fc93-4ef9-b9ad-2b93fa6de586"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'我是阿里云开发的一款超大规模语言模型，我叫通义千问。作为一个AI助手，我的目标是帮助用户获得准确、有用的信息，解决他们的问题和困惑。我可以回答各种领域的问题、提供信息查询、解释概念、辅助学习等。请随时告诉我您需要帮助的内容，我会尽力提供支持。'"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "llm.invoke('你是谁')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "jl36b7QsQA0t",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:48:04.688875Z",
     "iopub.status.busy": "2024-08-08T13:48:04.688709Z",
     "iopub.status.idle": "2024-08-08T13:48:04.691858Z",
     "shell.execute_reply": "2024-08-08T13:48:04.691461Z",
     "shell.execute_reply.started": "2024-08-08T13:48:04.688862Z"
    },
    "id": "jl36b7QsQA0t"
   },
   "outputs": [],
   "source": [
    "def rag(vector_db, query, n_chunks=4):\n",
    "    prompt_tmpl = \"\"\"\n",
    "你是一个金融分析师，擅长根据所获取的信息片段，对问题进行分析和推理。\n",
    "你的任务是根据所获取的信息片段（<<<<context>>><<<</context>>>之间的内容）回答问题。\n",
    "回答保持简洁，不必重复问题，不要添加描述性解释和与答案无关的任何内容。\n",
    "已知信息：\n",
    "<<<<context>>>\n",
    "{{knowledge}}\n",
    "<<<</context>>>\n",
    "\n",
    "问题：{{query}}\n",
    "请回答：\n",
    "\"\"\".strip()\n",
    "\n",
    "    chunks = retrieve(vector_db, query, k=n_chunks)\n",
    "    prompt = prompt_tmpl.replace('{{knowledge}}', '\\n\\n'.join([doc.page_content for doc in chunks])).replace('{{query}}', query)\n",
    "\n",
    "    return llm(prompt), chunks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "5146bd08-c194-4103-9141-8822d7e23734",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:48:09.448828Z",
     "iopub.status.busy": "2024-08-08T13:48:09.448478Z",
     "iopub.status.idle": "2024-08-08T13:48:14.404262Z",
     "shell.execute_reply": "2024-08-08T13:48:14.403901Z",
     "shell.execute_reply.started": "2024-08-08T13:48:09.448798Z"
    },
    "id": "5146bd08-c194-4103-9141-8822d7e23734",
    "outputId": "f7962352-88c2-4c6a-82af-01ed2f051cfe"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/anaconda3/lib/python3.10/site-packages/langchain_core/_api/deprecation.py:139: LangChainDeprecationWarning: The method `BaseLLM.__call__` was deprecated in langchain-core 0.1.7 and will be removed in 0.3.0. Use invoke instead.\n",
      "  warn_deprecated(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2023年10月美国ISM制造业PMI指数较上个月大幅下降了2.3个百分点。\n"
     ]
    }
   ],
   "source": [
    "print(rag(vector_db_dict['bge_large'], '2023年10月美国ISM制造业PMI指数较上月有何变化？')[0])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3bec2362-57fd-428c-890a-f98c7487a543",
   "metadata": {
    "id": "3bec2362-57fd-428c-890a-f98c7487a543"
   },
   "source": [
    "## 预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "258a51b8-e303-444d-9304-700abf3deef8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T13:48:39.135525Z",
     "iopub.status.busy": "2024-08-08T13:48:39.135346Z",
     "iopub.status.idle": "2024-08-08T13:48:39.140157Z",
     "shell.execute_reply": "2024-08-08T13:48:39.139805Z",
     "shell.execute_reply.started": "2024-08-08T13:48:39.135511Z"
    },
    "id": "258a51b8-e303-444d-9304-700abf3deef8"
   },
   "outputs": [],
   "source": [
    "prediction_df = qa_df[qa_df['dataset'] == 'test'][['uuid', 'question', 'qa_type', 'answer']].rename(columns={'answer': 'ref_answer'})\n",
    "\n",
    "def predict(prediction_df, vector_db, n_chunks):\n",
    "    prediction_df = prediction_df.copy()\n",
    "\n",
    "    answer_dict = {}\n",
    "\n",
    "    for idx, row in tqdm(prediction_df.iterrows(), total=len(prediction_df)):\n",
    "        uuid = row['uuid']\n",
    "        question = row['question']\n",
    "        answer, chunks = rag(vector_db, question, n_chunks=n_chunks)\n",
    "        assert len(chunks) <= n_chunks\n",
    "        answer_dict[question] = {\n",
    "            'uuid': uuid,\n",
    "            'ref_answer': row['ref_answer'],\n",
    "            'gen_answer': answer,\n",
    "            'chunks': chunks\n",
    "        }\n",
    "    prediction_df.loc[:, 'gen_answer'] = prediction_df['question'].apply(lambda q: answer_dict[q]['gen_answer'])\n",
    "    prediction_df.loc[:, 'chunks'] = prediction_df['question'].apply(lambda q: answer_dict[q]['chunks'])\n",
    "\n",
    "    return prediction_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "05fc36ad-8a7d-49da-b6a2-e56929eac4ee",
   "metadata": {},
   "source": [
    "检索片段数为4的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "TaHaFe6i8OKi",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 81,
     "referenced_widgets": [
      "6b8708c2d7d7485a955b81c06d92bdf1",
      "63e30a3e83e043198335f9a5b89358d6",
      "7638af3ce20f419295618d0d5a3410be",
      "75b0faf380d54770a04ffab21ca07017",
      "707daf4c5a5744718e457c2e1c3ad140",
      "2aaeee703f714dbcb160e7aaec85a4a4",
      "11a7a1a6f6d744708a1b0e5c88b1b2cf",
      "4610c96b50e646dc90e2a86c7165c307",
      "dc8cc73e918d4923baaa1c34de72007b",
      "422fed3d612a4f81998c7979d95d73d5",
      "ebe21fce33774452baa5133d08838483",
      "e05006e905ed4ff99d8716d62d7163fa",
      "68f118d5d2f942fe8ed016db2d04084c",
      "8b8b9d2503ac414ab16c517ae02e0d54",
      "52f30718e18a4ae5b2628cb26aa9637a",
      "3aad78776ced455b92c9a0625351cdef",
      "bbc0db2b7f5d47e28a0b5a97a9275c2e",
      "9633661959534d608a417a694179a9a2",
      "f0e9943ad79f4211890e2690a31dbb77",
      "c31ec70dac63487880317233546547e9",
      "237c0e73c01e4911b7b49f90d94ff45a",
      "1551153f3cc74c5c8abdfbce5490ffe6"
     ]
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T13:48:39.622104Z",
     "iopub.status.busy": "2024-08-08T13:48:39.621926Z",
     "iopub.status.idle": "2024-08-08T14:53:10.286971Z",
     "shell.execute_reply": "2024-08-08T14:53:10.286499Z",
     "shell.execute_reply.started": "2024-08-08T13:48:39.622090Z"
    },
    "id": "TaHaFe6i8OKi",
    "outputId": "d904b117-ef89-47fd-d308-b81228f08ac4"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e9b2c0fd917442d7b442f7a52fe34544",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f05b862ae94d4ba5935e8de482072267",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bge_vanilla_4_pred_df = predict(prediction_df, vector_db_dict['bge_large'], n_chunks=4)\n",
    "bge_ft_4_pred_df = predict(prediction_df, vector_db_dict['bge_large_finetune'], n_chunks=4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7c6412b9-48e0-4aff-854e-84d2d22b8ac5",
   "metadata": {},
   "source": [
    "检索片段数为3的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "WduIc8RYgyBT",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 67,
     "referenced_widgets": [
      "72ca14796cff4be9a236d5f3c6962af7",
      "f984169acea64235983d5b4f30df5956",
      "7139e92a033541fb8e5146cf55bfc5e3",
      "3cf8e622799342c082ffb5cbeac2dd7f",
      "c35bd29c0ff24ad9a374c3bf6d440a3c",
      "39aa49cfbe094a93b84d74bd02973e75",
      "ff5d7bba95ee46799db2cfea8679c95e",
      "fb1c66e7416d426e9a1e71ab7c679e34",
      "a9c11a3dc7d04f7c8a37a09d0e724d3b",
      "ae84c69d3fd54db8a2947db60d31bc9f",
      "12c21499e8194d158119876a0857746d",
      "3606ed72e0b54e41b80751b0c0619883"
     ]
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T14:53:10.287787Z",
     "iopub.status.busy": "2024-08-08T14:53:10.287655Z",
     "iopub.status.idle": "2024-08-08T15:45:26.563149Z",
     "shell.execute_reply": "2024-08-08T15:45:26.562670Z",
     "shell.execute_reply.started": "2024-08-08T14:53:10.287774Z"
    },
    "id": "WduIc8RYgyBT",
    "outputId": "818b6d37-4b60-448b-88e2-3869f1b387c5"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7b1161a1e3cb461dbb630070c2c68ad2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a823b36c074c45ab88a8d38236a65fc4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bge_vanilla_pred_df = predict(prediction_df, vector_db_dict['bge_large'], n_chunks=3)\n",
    "bge_ft_pred_df = predict(prediction_df, vector_db_dict['bge_large_finetune'], n_chunks=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d1d0f6f1-ae36-4c46-ba5f-24ba7ff54f3e",
   "metadata": {
    "id": "d1d0f6f1-ae36-4c46-ba5f-24ba7ff54f3e"
   },
   "source": [
    "# 评估"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "01c9003f-9196-4bc2-a6c5-75a491610e78",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T15:45:50.744551Z",
     "iopub.status.busy": "2024-08-08T15:45:50.744370Z",
     "iopub.status.idle": "2024-08-08T15:45:51.139750Z",
     "shell.execute_reply": "2024-08-08T15:45:51.139258Z",
     "shell.execute_reply.started": "2024-08-08T15:45:50.744537Z"
    },
    "id": "01c9003f-9196-4bc2-a6c5-75a491610e78"
   },
   "outputs": [],
   "source": [
    "from langchain_openai import ChatOpenAI\n",
    "import time\n",
    "\n",
    "judge_llm = ChatOpenAI(\n",
    "    api_key=os.environ['LLM_API_KEY'],\n",
    "    base_url=os.environ['LLM_BASE_URL'],\n",
    "    model_name='qwen2-72b-instruct',\n",
    "    temperature=0\n",
    ")\n",
    "\n",
    "\n",
    "def evaluate(prediction_df):\n",
    "    \"\"\"\n",
    "    对预测结果进行打分\n",
    "    :param prediction_df: 预测结果，需要包含问题，参考答案，生成的答案，列名分别为question, ref_answer, gen_answer\n",
    "    :return 打分模型原始返回结果\n",
    "    \"\"\"\n",
    "    prompt_tmpl = \"\"\"\n",
    "你是一个经济学博士，现在我有一系列问题，有一个助手已经对这些问题进行了回答，你需要参照参考答案，评价这个助手的回答是否正确，仅回复“是”或“否”即可，不要带其他描述性内容或无关信息。\n",
    "问题：\n",
    "<question>\n",
    "{{question}}\n",
    "</question>\n",
    "\n",
    "参考答案：\n",
    "<ref_answer>\n",
    "{{ref_answer}}\n",
    "</ref_answer>\n",
    "\n",
    "助手回答：\n",
    "<gen_answer>\n",
    "{{gen_answer}}\n",
    "</gen_answer>\n",
    "请评价：\n",
    "    \"\"\"\n",
    "    results = []\n",
    "\n",
    "    for _, row in tqdm(prediction_df.iterrows(), total=len(prediction_df)):\n",
    "        question = row['question']\n",
    "        ref_answer = row['ref_answer']\n",
    "        gen_answer = row['gen_answer']\n",
    "\n",
    "        prompt = prompt_tmpl.replace('{{question}}', question).replace('{{ref_answer}}', str(ref_answer)).replace('{{gen_answer}}', gen_answer).strip()\n",
    "        result = judge_llm.invoke(prompt).content\n",
    "        results.append(result)\n",
    "\n",
    "        time.sleep(1)\n",
    "    return results"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd291bc7-24bb-4292-9772-f9ee60a5a7d5",
   "metadata": {},
   "source": [
    "## 知识片段数为3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "NET08sdOk2Ng",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 81,
     "referenced_widgets": [
      "754db037e9df4c8cbd668d2f69a583be",
      "96a35e5944a74364a5bcb625e7a02bd6",
      "109593edcf234d8abd6605b4dbe6f6c5",
      "0ec063007e47470182ea03e62f4add7a",
      "ad0d9620c6f047a29859aa19c6d63e3d",
      "fa047718b1f144eb9943b0c82de51edd",
      "a206ed2aa7014734a86d55efd38c5295",
      "8b3ea12632454e79af55892099211986",
      "70a1783c106c4f60a2c839fc01d1573e",
      "b36069da599947eaaabd6cd32e9b00e0",
      "7d6050b2d37f41e2af71535301fa2bdf",
      "d284a272847f4bc9ac02473f88565df8",
      "acf4c111ce994050af6cfbdd78b616d8",
      "91a7d973800a421e91624eadb2cab754",
      "c8ee747376eb4b25838f27cff25c40f1",
      "04be3e24f36345aba07cb331ae7c1e67",
      "0b2532f45bff4ac789389b1758441193",
      "0f6cedd812014629b2336b534c712201",
      "9bb5cb537bbf465bb445cd906661b75f",
      "e38ba9f67be54c7b83aa14d59613d33d",
      "5f8cf26ca6eb4e17968b949172fa126f",
      "12ee42154fff4bd5884c8050ad9cd3b4"
     ]
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T15:45:53.278337Z",
     "iopub.status.busy": "2024-08-08T15:45:53.277562Z",
     "iopub.status.idle": "2024-08-08T15:50:34.009327Z",
     "shell.execute_reply": "2024-08-08T15:50:34.008795Z",
     "shell.execute_reply.started": "2024-08-08T15:45:53.278269Z"
    },
    "id": "NET08sdOk2Ng",
    "outputId": "51ffd3ba-0d5f-42eb-c60a-9fe76ef0b8ae"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "bdd5737214394f73a16d19adcf15b8f7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6140049d0ab444b1b84613dc065690d3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bge_vanilla_pred_df['raw_score'] = evaluate(bge_vanilla_pred_df)\n",
    "bge_ft_pred_df['raw_score'] = evaluate(bge_ft_pred_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "wl9QHAGwmGRj",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T15:51:15.565656Z",
     "iopub.status.busy": "2024-08-08T15:51:15.564875Z",
     "iopub.status.idle": "2024-08-08T15:51:15.571698Z",
     "shell.execute_reply": "2024-08-08T15:51:15.571253Z",
     "shell.execute_reply.started": "2024-08-08T15:51:15.565588Z"
    },
    "id": "wl9QHAGwmGRj",
    "outputId": "6bf51155-afbd-4bac-b911-39fb8aa6213a"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array(['是', '否'], dtype=object), array(['是', '否'], dtype=object))"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bge_vanilla_pred_df['raw_score'].unique(), bge_ft_pred_df['raw_score'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "EfHnkdetmK3n",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T15:51:16.621064Z",
     "iopub.status.busy": "2024-08-08T15:51:16.620870Z",
     "iopub.status.idle": "2024-08-08T15:51:16.624466Z",
     "shell.execute_reply": "2024-08-08T15:51:16.624001Z",
     "shell.execute_reply.started": "2024-08-08T15:51:16.621048Z"
    },
    "id": "EfHnkdetmK3n"
   },
   "outputs": [],
   "source": [
    "bge_vanilla_pred_df['score'] = (bge_vanilla_pred_df['raw_score'] == '是').astype(int)\n",
    "bge_ft_pred_df['score'] = (bge_ft_pred_df['raw_score'] == '是').astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "LWe7LEFMmZld",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T15:51:17.397921Z",
     "iopub.status.busy": "2024-08-08T15:51:17.397736Z",
     "iopub.status.idle": "2024-08-08T15:51:17.401630Z",
     "shell.execute_reply": "2024-08-08T15:51:17.401213Z",
     "shell.execute_reply.started": "2024-08-08T15:51:17.397907Z"
    },
    "id": "LWe7LEFMmZld",
    "outputId": "72823ec2-bb0a-4447-aa1f-572de7b821b8"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.72, 0.74)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bge_vanilla_pred_df['score'].mean(), bge_ft_pred_df['score'].mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15b37832-bf86-4215-952c-8ea3d4c9e0b4",
   "metadata": {},
   "source": [
    "准确率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "KBS2yH1AoxJr",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T15:51:20.156612Z",
     "iopub.status.busy": "2024-08-08T15:51:20.155822Z",
     "iopub.status.idle": "2024-08-08T15:51:20.163662Z",
     "shell.execute_reply": "2024-08-08T15:51:20.163206Z",
     "shell.execute_reply.started": "2024-08-08T15:51:20.156543Z"
    },
    "id": "KBS2yH1AoxJr",
    "outputId": "e41f3e55-5aed-486f-c1e3-c87f06f6f6ac"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.6989247311827957, 0.7311827956989247)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bge_vanilla_pred_df[bge_vanilla_pred_df['qa_type'] == 'detailed']['score'].mean(), bge_ft_pred_df[bge_ft_pred_df['qa_type'] == 'detailed']['score'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "fFgpujYXnlQ7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T15:51:21.525076Z",
     "iopub.status.busy": "2024-08-08T15:51:21.524823Z",
     "iopub.status.idle": "2024-08-08T15:51:21.531161Z",
     "shell.execute_reply": "2024-08-08T15:51:21.530732Z",
     "shell.execute_reply.started": "2024-08-08T15:51:21.525058Z"
    },
    "id": "fFgpujYXnlQ7"
   },
   "outputs": [],
   "source": [
    "bge_vanilla_pred_df['retrieval_hit'] = bge_vanilla_pred_df.apply(lambda row: int(row['uuid'] in [doc.metadata['uuid'] for doc in row['chunks']]), axis=1)\n",
    "bge_ft_pred_df['retrieval_hit'] = bge_ft_pred_df.apply(lambda row: int(row['uuid'] in [doc.metadata['uuid'] for doc in row['chunks']]), axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1744f1cc-5547-4538-9149-2d959949987b",
   "metadata": {},
   "source": [
    "## 知识片段数为4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "omCTEdbX_6AJ",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 81,
     "referenced_widgets": [
      "407494bc3b8d4538a100580a56a79762",
      "f402e1f3dd0f46e9a67c60801d880f3f",
      "6d9483ff7ac045c58310705bfbb8e687",
      "3f9826375ca445eebf163d8df552e9ed",
      "0472a241553d49d7ae6f96c7e0fbdb35",
      "f5944fe0de4a4b1fb88785250e903fe1",
      "09cf285deb754de795bd85ff75ee4945",
      "cb61ed5c48ba42a6874aec18da89ec5b",
      "9cff3e3d5a92468a9a5b6affa8e24da7",
      "7550778d33de4dcea7323c1c976d0287",
      "9ec5499fd516442999f1075d5b662f56",
      "a31afbdf441b40c0a3d8cc75cfff9c62",
      "0c3bacbd2c794d55866c3acfb4093f82",
      "c7f3ce3011344a3f89fb691c69f54156",
      "2299307a50c642739a7cbc3526947fa5",
      "4522fc1384c44c958b2173d3e46ff24f",
      "3452dff3f0c54a02af70c9ef6cb596d7",
      "4b2567c81447436aa6e992da42998ef0",
      "82cf64d7bd874bf58bdc992df9ce1f95",
      "9418a361373b45c199ca3e8803177ed6",
      "18bbc2c5cbe3498dbdee7697b995a65e",
      "3e6de5e1a3484aa89fcab5843dbb370b"
     ]
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T15:51:53.688614Z",
     "iopub.status.busy": "2024-08-08T15:51:53.687836Z",
     "iopub.status.idle": "2024-08-08T15:56:36.643216Z",
     "shell.execute_reply": "2024-08-08T15:56:36.642183Z",
     "shell.execute_reply.started": "2024-08-08T15:51:53.688545Z"
    },
    "id": "omCTEdbX_6AJ",
    "outputId": "05c1fa03-0eb2-4191-92a2-790c9faf1811"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "36a575a7c326492e9e26ce2eb130b075",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "500150a191824b5e969690db6b5e4de6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bge_vanilla_4_pred_df['raw_score'] = evaluate(bge_vanilla_4_pred_df)\n",
    "bge_ft_4_pred_df['raw_score'] = evaluate(bge_ft_4_pred_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "KDc3TL3U_5we",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T15:56:36.645057Z",
     "iopub.status.busy": "2024-08-08T15:56:36.644754Z",
     "iopub.status.idle": "2024-08-08T15:56:36.652462Z",
     "shell.execute_reply": "2024-08-08T15:56:36.651255Z",
     "shell.execute_reply.started": "2024-08-08T15:56:36.645028Z"
    },
    "id": "KDc3TL3U_5we",
    "outputId": "7de26168-02d6-4ecc-9166-bed827c52d60"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array(['是', '否'], dtype=object), array(['是', '否'], dtype=object))"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bge_vanilla_4_pred_df['raw_score'].unique(), bge_ft_4_pred_df['raw_score'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "FB_gQUbpADLo",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-08-08T15:58:03.723859Z",
     "iopub.status.busy": "2024-08-08T15:58:03.723090Z",
     "iopub.status.idle": "2024-08-08T15:58:03.735709Z",
     "shell.execute_reply": "2024-08-08T15:58:03.733814Z",
     "shell.execute_reply.started": "2024-08-08T15:58:03.723794Z"
    },
    "id": "FB_gQUbpADLo"
   },
   "outputs": [],
   "source": [
    "bge_vanilla_4_pred_df['score'] = (bge_vanilla_4_pred_df['raw_score'] == '是').astype(int)\n",
    "bge_ft_4_pred_df['score'] = (bge_ft_4_pred_df['raw_score'] == '是').astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "jLbfzxYzAIOx",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "execution": {
     "iopub.execute_input": "2024-08-08T15:58:04.062681Z",
     "iopub.status.busy": "2024-08-08T15:58:04.062499Z",
     "iopub.status.idle": "2024-08-08T15:58:04.066254Z",
     "shell.execute_reply": "2024-08-08T15:58:04.065750Z",
     "shell.execute_reply.started": "2024-08-08T15:58:04.062667Z"
    },
    "id": "jLbfzxYzAIOx",
    "outputId": "c9a1b45c-a240-4efb-e43a-e73a8e261458"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.7, 0.56)"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bge_vanilla_4_pred_df['score'].mean(), bge_ft_4_pred_df['score'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ZCpNJj8OpJ4d",
   "metadata": {
    "id": "ZCpNJj8OpJ4d"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "gpuType": "T4",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "002d4cd8a5c54f4cb194fcd718df34e1": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0472a241553d49d7ae6f96c7e0fbdb35": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "04be3e24f36345aba07cb331ae7c1e67": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "09cf285deb754de795bd85ff75ee4945": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "0a3d5ba36d8f4981b8cc5515e09566f7": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_684e3ba1847a4f498eda23f9011059cf",
      "max": 2,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_973eadf6db09408e886a9a87386afee4",
      "value": 2
     }
    },
    "0a9044ea411447c7a22c54dbc8720d2d": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0b2532f45bff4ac789389b1758441193": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0bfeac08ae0345848a112c10d70e8fb9": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0c3bacbd2c794d55866c3acfb4093f82": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3452dff3f0c54a02af70c9ef6cb596d7",
      "placeholder": "​",
      "style": "IPY_MODEL_4b2567c81447436aa6e992da42998ef0",
      "value": "100%"
     }
    },
    "0ec063007e47470182ea03e62f4add7a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b36069da599947eaaabd6cd32e9b00e0",
      "placeholder": "​",
      "style": "IPY_MODEL_7d6050b2d37f41e2af71535301fa2bdf",
      "value": " 100/100 [00:44&lt;00:00,  2.23it/s]"
     }
    },
    "0f6cedd812014629b2336b534c712201": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "109593edcf234d8abd6605b4dbe6f6c5": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_8b3ea12632454e79af55892099211986",
      "max": 100,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_70a1783c106c4f60a2c839fc01d1573e",
      "value": 100
     }
    },
    "11a7a1a6f6d744708a1b0e5c88b1b2cf": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "12c21499e8194d158119876a0857746d": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "12ee42154fff4bd5884c8050ad9cd3b4": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "146eaa83645747a6ab30e5fb83bed0f4": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_31f58d87245447bf8ee3fc69753742d8",
       "IPY_MODEL_f060bb3622894617a13f8d122b8ddd97",
       "IPY_MODEL_3d99a0a9594a4bc687a1e5d8c6631851"
      ],
      "layout": "IPY_MODEL_d008f89834d04fb8ad20d9acd17724cd"
     }
    },
    "1551153f3cc74c5c8abdfbce5490ffe6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "1589fa7eb1b8420b99987c59c1017366": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "17707a740de84b6288d6cab91746e8e7": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_26beb520364d413aae80819c5febe60d",
       "IPY_MODEL_a89c6f884f614deb874905fb1e8d1908",
       "IPY_MODEL_367d4e99f59d46b4b0c5505b1e830871"
      ],
      "layout": "IPY_MODEL_93f7260d1fc44a6f9598715f4cd9a875"
     }
    },
    "18bbc2c5cbe3498dbdee7697b995a65e": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1957cc1034274277870c36dfc8d339fd": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c6336ea3a792416cb687ff733ae5ed80",
      "max": 93,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_3d6143508e3b49198a33bb8011a032f3",
      "value": 93
     }
    },
    "1b80a7e9b2574013b71170ecc69b49cd": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1e561fb8d2234f98b95fa8c787c2106a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0bfeac08ae0345848a112c10d70e8fb9",
      "placeholder": "​",
      "style": "IPY_MODEL_c3dbc4ef87044ba68535c992624407de",
      "value": " 93/93 [10:03&lt;00:00,  6.25s/it]"
     }
    },
    "21423bce6db7428dae9988e945f4cf59": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "2299307a50c642739a7cbc3526947fa5": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_18bbc2c5cbe3498dbdee7697b995a65e",
      "placeholder": "​",
      "style": "IPY_MODEL_3e6de5e1a3484aa89fcab5843dbb370b",
      "value": " 100/100 [00:44&lt;00:00,  2.18it/s]"
     }
    },
    "237c0e73c01e4911b7b49f90d94ff45a": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "26beb520364d413aae80819c5febe60d": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3a96b0a74b9948edbd56f7c18dae9f62",
      "placeholder": "​",
      "style": "IPY_MODEL_b9fb9f85be20446da81a08f0dae3cea8",
      "value": "100%"
     }
    },
    "2aaeee703f714dbcb160e7aaec85a4a4": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "31f58d87245447bf8ee3fc69753742d8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_72a83563712b4fd49c08699c1f16815a",
      "placeholder": "​",
      "style": "IPY_MODEL_71196108745941c88ed5ab2567aae6d1",
      "value": " 89%"
     }
    },
    "32bde979cccd4160a44dc75fba7837b1": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3452dff3f0c54a02af70c9ef6cb596d7": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "35bc5fe9ac44433fb69434a4aabab624": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f941d12ce31f4ccbaf3fb13a0c90ef36",
      "placeholder": "​",
      "style": "IPY_MODEL_592b0bf8a67842099563d0905e07227a",
      "value": "100%"
     }
    },
    "367d4e99f59d46b4b0c5505b1e830871": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c906f6c5170d47448f95b7a6ba018473",
      "placeholder": "​",
      "style": "IPY_MODEL_5feb5b97fa964fa29b52b9bc06bd4795",
      "value": " 8/8 [00:17&lt;00:00,  2.20s/it]"
     }
    },
    "39a2f885dcf54f1baf24b102fec37edd": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "39aa49cfbe094a93b84d74bd02973e75": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3a4866ba60b54932bf81f7a2dd804503": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3a96b0a74b9948edbd56f7c18dae9f62": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3aad78776ced455b92c9a0625351cdef": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3cf8e622799342c082ffb5cbeac2dd7f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ae84c69d3fd54db8a2947db60d31bc9f",
      "placeholder": "​",
      "style": "IPY_MODEL_12c21499e8194d158119876a0857746d",
      "value": " 86/100 [05:26&lt;01:37,  6.93s/it]"
     }
    },
    "3d6143508e3b49198a33bb8011a032f3": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "3d99a0a9594a4bc687a1e5d8c6631851": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_39a2f885dcf54f1baf24b102fec37edd",
      "placeholder": "​",
      "style": "IPY_MODEL_91bd71e902144494a53341e25dcf5b60",
      "value": " 83/93 [01:33&lt;00:10,  1.05s/it]"
     }
    },
    "3dae2959803343c9a9c6acc8c8a852bd": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "3e6de5e1a3484aa89fcab5843dbb370b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "3f9826375ca445eebf163d8df552e9ed": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_7550778d33de4dcea7323c1c976d0287",
      "placeholder": "​",
      "style": "IPY_MODEL_9ec5499fd516442999f1075d5b662f56",
      "value": " 100/100 [00:45&lt;00:00,  2.31it/s]"
     }
    },
    "4058a128f0ea4cc798cdc1f436f2eba1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "407494bc3b8d4538a100580a56a79762": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_f402e1f3dd0f46e9a67c60801d880f3f",
       "IPY_MODEL_6d9483ff7ac045c58310705bfbb8e687",
       "IPY_MODEL_3f9826375ca445eebf163d8df552e9ed"
      ],
      "layout": "IPY_MODEL_0472a241553d49d7ae6f96c7e0fbdb35"
     }
    },
    "422fed3d612a4f81998c7979d95d73d5": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4522fc1384c44c958b2173d3e46ff24f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4610c96b50e646dc90e2a86c7165c307": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "477cd703b3a645f2969e1f3504fb7dcf": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4b2567c81447436aa6e992da42998ef0": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "4e86c58a88af400c872f81f064b5a2cd": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_1b80a7e9b2574013b71170ecc69b49cd",
      "placeholder": "​",
      "style": "IPY_MODEL_4058a128f0ea4cc798cdc1f436f2eba1",
      "value": "100%"
     }
    },
    "52983dfff3cf418ebf0c9aeca5695a5b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_c769aa9e95ef40f49899431caa2f3637",
       "IPY_MODEL_716931bf754f41e181a549c258571d7e",
       "IPY_MODEL_d99839ac7c904fb88e70eb75f30f7827"
      ],
      "layout": "IPY_MODEL_002d4cd8a5c54f4cb194fcd718df34e1"
     }
    },
    "52f30718e18a4ae5b2628cb26aa9637a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_237c0e73c01e4911b7b49f90d94ff45a",
      "placeholder": "​",
      "style": "IPY_MODEL_1551153f3cc74c5c8abdfbce5490ffe6",
      "value": " 100/100 [07:51&lt;00:00,  7.24s/it]"
     }
    },
    "592b0bf8a67842099563d0905e07227a": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "5a2c4d204b1e4caf8935c0d53d24c456": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0a9044ea411447c7a22c54dbc8720d2d",
      "placeholder": "​",
      "style": "IPY_MODEL_efdc52f31b094771b4333dbdbb9a4b1c",
      "value": " 2/2 [00:17&lt;00:00,  8.19s/it]"
     }
    },
    "5f8cf26ca6eb4e17968b949172fa126f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5feb5b97fa964fa29b52b9bc06bd4795": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "63e30a3e83e043198335f9a5b89358d6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2aaeee703f714dbcb160e7aaec85a4a4",
      "placeholder": "​",
      "style": "IPY_MODEL_11a7a1a6f6d744708a1b0e5c88b1b2cf",
      "value": "100%"
     }
    },
    "684e3ba1847a4f498eda23f9011059cf": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "68f118d5d2f942fe8ed016db2d04084c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_bbc0db2b7f5d47e28a0b5a97a9275c2e",
      "placeholder": "​",
      "style": "IPY_MODEL_9633661959534d608a417a694179a9a2",
      "value": "100%"
     }
    },
    "6962a57036534834b06682d516d2d4d7": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "6b8708c2d7d7485a955b81c06d92bdf1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_63e30a3e83e043198335f9a5b89358d6",
       "IPY_MODEL_7638af3ce20f419295618d0d5a3410be",
       "IPY_MODEL_75b0faf380d54770a04ffab21ca07017"
      ],
      "layout": "IPY_MODEL_707daf4c5a5744718e457c2e1c3ad140"
     }
    },
    "6d9483ff7ac045c58310705bfbb8e687": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_cb61ed5c48ba42a6874aec18da89ec5b",
      "max": 100,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_9cff3e3d5a92468a9a5b6affa8e24da7",
      "value": 100
     }
    },
    "6e8fd1950c834d5990ead72268ee330f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "707daf4c5a5744718e457c2e1c3ad140": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "70a1783c106c4f60a2c839fc01d1573e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "71196108745941c88ed5ab2567aae6d1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "7139e92a033541fb8e5146cf55bfc5e3": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_fb1c66e7416d426e9a1e71ab7c679e34",
      "max": 100,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_a9c11a3dc7d04f7c8a37a09d0e724d3b",
      "value": 86
     }
    },
    "716931bf754f41e181a549c258571d7e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_1589fa7eb1b8420b99987c59c1017366",
      "max": 8,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_aaa60aaa5b8f4cbcafd040896e593548",
      "value": 8
     }
    },
    "72a83563712b4fd49c08699c1f16815a": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "72ca14796cff4be9a236d5f3c6962af7": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_f984169acea64235983d5b4f30df5956",
       "IPY_MODEL_7139e92a033541fb8e5146cf55bfc5e3",
       "IPY_MODEL_3cf8e622799342c082ffb5cbeac2dd7f"
      ],
      "layout": "IPY_MODEL_c35bd29c0ff24ad9a374c3bf6d440a3c"
     }
    },
    "754db037e9df4c8cbd668d2f69a583be": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_96a35e5944a74364a5bcb625e7a02bd6",
       "IPY_MODEL_109593edcf234d8abd6605b4dbe6f6c5",
       "IPY_MODEL_0ec063007e47470182ea03e62f4add7a"
      ],
      "layout": "IPY_MODEL_ad0d9620c6f047a29859aa19c6d63e3d"
     }
    },
    "7550778d33de4dcea7323c1c976d0287": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "75b0faf380d54770a04ffab21ca07017": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_422fed3d612a4f81998c7979d95d73d5",
      "placeholder": "​",
      "style": "IPY_MODEL_ebe21fce33774452baa5133d08838483",
      "value": " 100/100 [07:22&lt;00:00,  8.02s/it]"
     }
    },
    "7638af3ce20f419295618d0d5a3410be": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4610c96b50e646dc90e2a86c7165c307",
      "max": 100,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_dc8cc73e918d4923baaa1c34de72007b",
      "value": 100
     }
    },
    "7d6050b2d37f41e2af71535301fa2bdf": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "82cf64d7bd874bf58bdc992df9ce1f95": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8b3ea12632454e79af55892099211986": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8b8b9d2503ac414ab16c517ae02e0d54": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f0e9943ad79f4211890e2690a31dbb77",
      "max": 100,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_c31ec70dac63487880317233546547e9",
      "value": 100
     }
    },
    "91a7d973800a421e91624eadb2cab754": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_9bb5cb537bbf465bb445cd906661b75f",
      "max": 100,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_e38ba9f67be54c7b83aa14d59613d33d",
      "value": 100
     }
    },
    "91bd71e902144494a53341e25dcf5b60": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "93f7260d1fc44a6f9598715f4cd9a875": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9418a361373b45c199ca3e8803177ed6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "962dc6e0ad004253a943ead49015bae0": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "9633661959534d608a417a694179a9a2": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "96a35e5944a74364a5bcb625e7a02bd6": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_fa047718b1f144eb9943b0c82de51edd",
      "placeholder": "​",
      "style": "IPY_MODEL_a206ed2aa7014734a86d55efd38c5295",
      "value": "100%"
     }
    },
    "973eadf6db09408e886a9a87386afee4": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "98a8f1feca2749e298df07d56cc49d28": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_35bc5fe9ac44433fb69434a4aabab624",
       "IPY_MODEL_0a3d5ba36d8f4981b8cc5515e09566f7",
       "IPY_MODEL_5a2c4d204b1e4caf8935c0d53d24c456"
      ],
      "layout": "IPY_MODEL_6962a57036534834b06682d516d2d4d7"
     }
    },
    "9bb5cb537bbf465bb445cd906661b75f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9cff3e3d5a92468a9a5b6affa8e24da7": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "9ec5499fd516442999f1075d5b662f56": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "a206ed2aa7014734a86d55efd38c5295": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "a31afbdf441b40c0a3d8cc75cfff9c62": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_0c3bacbd2c794d55866c3acfb4093f82",
       "IPY_MODEL_c7f3ce3011344a3f89fb691c69f54156",
       "IPY_MODEL_2299307a50c642739a7cbc3526947fa5"
      ],
      "layout": "IPY_MODEL_4522fc1384c44c958b2173d3e46ff24f"
     }
    },
    "a89c6f884f614deb874905fb1e8d1908": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_d0a566e962324d94aa7bd9b7fe5cb3db",
      "max": 8,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_962dc6e0ad004253a943ead49015bae0",
      "value": 8
     }
    },
    "a9c11a3dc7d04f7c8a37a09d0e724d3b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "aaa60aaa5b8f4cbcafd040896e593548": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "acf4c111ce994050af6cfbdd78b616d8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0b2532f45bff4ac789389b1758441193",
      "placeholder": "​",
      "style": "IPY_MODEL_0f6cedd812014629b2336b534c712201",
      "value": "100%"
     }
    },
    "ad0d9620c6f047a29859aa19c6d63e3d": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ae84c69d3fd54db8a2947db60d31bc9f": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b36069da599947eaaabd6cd32e9b00e0": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b9fb9f85be20446da81a08f0dae3cea8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "bbc0db2b7f5d47e28a0b5a97a9275c2e": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "bf0a870702c34440a3966553e0a01c69": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "c31ec70dac63487880317233546547e9": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "c35bd29c0ff24ad9a374c3bf6d440a3c": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c3dbc4ef87044ba68535c992624407de": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "c6336ea3a792416cb687ff733ae5ed80": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c769aa9e95ef40f49899431caa2f3637": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_6e8fd1950c834d5990ead72268ee330f",
      "placeholder": "​",
      "style": "IPY_MODEL_21423bce6db7428dae9988e945f4cf59",
      "value": "100%"
     }
    },
    "c7f3ce3011344a3f89fb691c69f54156": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_82cf64d7bd874bf58bdc992df9ce1f95",
      "max": 100,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_9418a361373b45c199ca3e8803177ed6",
      "value": 100
     }
    },
    "c8ee747376eb4b25838f27cff25c40f1": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_5f8cf26ca6eb4e17968b949172fa126f",
      "placeholder": "​",
      "style": "IPY_MODEL_12ee42154fff4bd5884c8050ad9cd3b4",
      "value": " 100/100 [00:47&lt;00:00,  2.25it/s]"
     }
    },
    "c906f6c5170d47448f95b7a6ba018473": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "cb61ed5c48ba42a6874aec18da89ec5b": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d008f89834d04fb8ad20d9acd17724cd": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d0a566e962324d94aa7bd9b7fe5cb3db": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d284a272847f4bc9ac02473f88565df8": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_acf4c111ce994050af6cfbdd78b616d8",
       "IPY_MODEL_91a7d973800a421e91624eadb2cab754",
       "IPY_MODEL_c8ee747376eb4b25838f27cff25c40f1"
      ],
      "layout": "IPY_MODEL_04be3e24f36345aba07cb331ae7c1e67"
     }
    },
    "d99839ac7c904fb88e70eb75f30f7827": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_477cd703b3a645f2969e1f3504fb7dcf",
      "placeholder": "​",
      "style": "IPY_MODEL_bf0a870702c34440a3966553e0a01c69",
      "value": " 8/8 [00:22&lt;00:00,  2.63s/it]"
     }
    },
    "dc8cc73e918d4923baaa1c34de72007b": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "e05006e905ed4ff99d8716d62d7163fa": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_68f118d5d2f942fe8ed016db2d04084c",
       "IPY_MODEL_8b8b9d2503ac414ab16c517ae02e0d54",
       "IPY_MODEL_52f30718e18a4ae5b2628cb26aa9637a"
      ],
      "layout": "IPY_MODEL_3aad78776ced455b92c9a0625351cdef"
     }
    },
    "e38ba9f67be54c7b83aa14d59613d33d": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "e8de8805fbdb47c1abff2612e165ec57": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HBoxModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_4e86c58a88af400c872f81f064b5a2cd",
       "IPY_MODEL_1957cc1034274277870c36dfc8d339fd",
       "IPY_MODEL_1e561fb8d2234f98b95fa8c787c2106a"
      ],
      "layout": "IPY_MODEL_32bde979cccd4160a44dc75fba7837b1"
     }
    },
    "ebe21fce33774452baa5133d08838483": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "efdc52f31b094771b4333dbdbb9a4b1c": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "f060bb3622894617a13f8d122b8ddd97": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "FloatProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_3a4866ba60b54932bf81f7a2dd804503",
      "max": 93,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_3dae2959803343c9a9c6acc8c8a852bd",
      "value": 83
     }
    },
    "f0e9943ad79f4211890e2690a31dbb77": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f402e1f3dd0f46e9a67c60801d880f3f": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f5944fe0de4a4b1fb88785250e903fe1",
      "placeholder": "​",
      "style": "IPY_MODEL_09cf285deb754de795bd85ff75ee4945",
      "value": "100%"
     }
    },
    "f5944fe0de4a4b1fb88785250e903fe1": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f941d12ce31f4ccbaf3fb13a0c90ef36": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f984169acea64235983d5b4f30df5956": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "HTMLModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_39aa49cfbe094a93b84d74bd02973e75",
      "placeholder": "​",
      "style": "IPY_MODEL_ff5d7bba95ee46799db2cfea8679c95e",
      "value": " 86%"
     }
    },
    "fa047718b1f144eb9943b0c82de51edd": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "fb1c66e7416d426e9a1e71ab7c679e34": {
     "model_module": "@jupyter-widgets/base",
     "model_module_version": "1.2.0",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ff5d7bba95ee46799db2cfea8679c95e": {
     "model_module": "@jupyter-widgets/controls",
     "model_module_version": "1.5.0",
     "model_name": "DescriptionStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
